今天本來想記錄一下入門級的資料集 fashion-mnist 的 GAN 練習。不過找到一個寫的很詳細的 GAN 應用的範例,那 fashion-mnist 的 GAN 練習,改天再整理記錄。今天先來研究一下 Meng Lee 這篇文章 [用 CartoonGAN 及 TensorFlow 2 生成新海誠與宮崎駿動畫],介紹的動漫風格 GAN 練習。
CartoonGAN的論文是於 2018 CVPR 發表的,完整名稱為 CartoonGAN: Generative Adversarial Networks for Photo Cartoonization,是一個嘗試將真實世界圖片轉換成動漫風格的對抗生成網路(Generative Adversarial Network,GAN)的論文。
接下來就實際執行一下 Meng Lee 這篇文章提供的 Colab 程式碼 。我們一樣只記錄比較重點的地方,一些比較細部的程式碼請參考原始的檔案。
首先先下載 CartoonGan-tensorflow 程式碼,並且將當前工作目錄改變為 CartoonGan-tensorflow 。
import os
repo = "CartoonGan-tensorflow"
!git clone https://github.com/mnicnc404/{repo}.git
os.chdir(os.path.join(repo))
檢查一下等一下要用到的檔案 cartoonize.py 在不在.
!ls | grep cartoonize.py
在安裝 tensorflow 2.0 前,我們可以先看一下目前預安裝的 tensorflow 版本是什麼?
import tensorflow as tf
tf.__version__
目前看來 tensorflow 版本是 '1.15.0-rc3'
再來要安裝 tensorflow 2.0 GPU 版,版號為 2.0.0-alpha0。還有 keras。
!pip install tensorflow-gpu==2.0.0-alpha0
!git clone https://www.github.com/keras-team/keras-contrib.git \
&& cd keras-contrib \
&& python convert_to_tf_keras.py \
&& USE_TF_KERAS=1 python setup.py install
clear_output()
再來看一下安裝之後 tensorflow 版本是多少? 可以看到已經換成 '2.0.0-alpha0' 版了。
再來實際選一張 gif 圖來試試轉換的效果。先提供 gif 檔的網址。
image_url = 'https://media.giphy.com/media/o5HKScC1PflLO/giphy.gif'
選擇轉換的風格,這個程式提供4種動漫風格的轉換。
styles = "shinkai"
開始轉換時,cartoonize.py 會從 "input_images" 目錄讀檔,完成後存放到 "output_images" 目錄。
!python cartoonize.py \
--styles {styles} \
--batch_size 1 \
--comparison_view horizontal
最後就看轉換的結果啦,4種風格我都執行了一次。效果如下:
新海誠風格 shinkai
宮崎駿風格 hayao
細田守風格 hosoda
paprika
以上就是這個卡通風格 GAN 應用的介紹,有興趣的人可以試一下用 Colab 跑一下這個程式。
好,第26天,結束。
參考
用 CartoonGAN 及 TensorFlow 2 生成新海誠與宮崎駿動畫
CartoonGAN: Generative Adversarial Networks for Photo Cartoonization
tensorflow2 generative models